open apple
cjcizcztte
nun
Eighth Edition Volume 2, Number 2 Oct ./Nov. 1983
Pkaso /// Printer Interface for the /// 2
Pascal News For The /// 14
Editorial: Publication Delays 17
Exploring Business Basic Part Seven 25
REVIEWS:
AppleWriter /// 13
The Portable /// 15
Word Juggler Ys. AppleWriter /// 18
Koala Touch Pad And The Ganieport III 19
The AXLON Ramdi sk 320 21
STEMS AND SEEDS:
Upgrading Your 128K /// to 256K 20
New Periodical To Aid Physicians 20
Release of BACKUP /// for Profile Owners 22
Epson Printer Interface Card 24
Word Count Using AppleWriter /// 24
"Incompatible Interpreter" Explanation 31
READERS' REACTION:
Time Clock Mail Fraud? 22
Installing AWUTIL /// On Profile 23
More Catalyst Notes 24
original apple Hits
PKASO Interface and Driver for Apple /// and
Matrix Printer
by Jim Li nhart
This PKASO system enables the Apple /// to
print graphics out on a dot-matrix printer.
I have an Epson MX-100 but the PKASO system
also supports the Epson MX-70, the Epson
MX-80 with Graftrax, and the Ok i data
Micro! ine 80, 82, 83, 82A,and 83A, as well
as the Centronics 739, the Integral Data
Systems 560, and the Integral Data Systems
Pri sm.
I have a 256K Apple /// with Business BASIC,
one external disk drive and an Epson MX-100
printer. I got the PKASO (pronounced
Picasso) system about a month ago and have
spent that time putting it through its paces
while at the same time learning more and
more about the Appl e /// graphics
capabil ities. It's nice to see something
really pretty on your screen get printed out
on the printer.
It was about a year ago when I purchased my
Epson MX-100 printer. I picked the MX-100
over the MX-80 primarily because it can use
wide scrap paper I coul d get from work. Its
graphics abil ities were at the time only
incidental to me (that was to change!). The
entire printer set-up con si sted of:
1. The Epson MX-100 printer.
2. An Appl e /// Universal Parallel
Interface Card
3. An Installation and Operating Manual
4. A di skette containing a .PRINTER
driver for the Epson.
5. A cable.
I went through my di skette s and reconfigured
them by install ing the .PRINTER driver. Then
I installed the Universal Parallel Card in
slot 1, hooked up the cable, then checked
things out by booting a util ities disk. I
sent a di sk catalog not to the .CONSOLE but
to the .PRINTER. The darn thing worked! ! Now
I can produce program 1 i stings, di sk catalog
1 i stings, and even get into changing what
print style the Epson is using. Consulting
the Universal Parallel Card manual was
primarily for checking that I was install ing
the card correctly.
I got the PKASO sy stem a month ago, and I've
found that as nice as the Epson is in
printing words, its nicer still in printing
out graphics. Graphics can be important
because you can impart about three times the
information on a chart or graph than you can
in a page of figures. In fact, graphics
figured in a great deal in a document a
management consultant was prepari ng--hi s
report was seventy pages in length. He
included bar charts and graphs and couldn't
imagine relaying the same voluminous amount
of information just using the printed word.
Now, with the PKASO system, I am able to
print such a report on my matrix printer and
in one of three sizes, small , medium, and
1 arge. The only thi ng I don't have is the
business or graphics software to generate
the charts and pictures (although there is
pi enty out there to buy) .
The PKASO sy stem con si sted of the following:
1. The PKASO interface card.
2. A PKASO /// Users Manual for Printer
Driver for the Apple /// and Matrix
Printers.
3. A PKASO Epson MX-80 Users Manual
4. A PKASO Driver Disk.
5. A PKASO Printer Interface
Demonstration Di sk. (Apple II)
6. A cable.
I've set up the system in these stages:
1. Install ing the card.
a. Plug in the card in slot 1.
b. Connect the cable from the
card to the printer.
2. Testing it in Appl e II emulation.
(Thi s is a quick and easy test to
make sure the printer, the card, and
the cable are all working in
harmony. )
a. Get into emul ation mode.
b. Get into Applesoft.
c. Boot the PKASO Printer
Interface Demonstration Disk.
d. Run the running demo program.
Some of the graphics that
resul t can be seen in
Figures 1 thru 4.
3. Creating a di sk to run on the Apple
///:
a. Format a di sk, call ing it
PABLOPKASO. Copy Business
Basic onto thi s di sk. Note
that the PKASO system
generates graphics with a
Business Basic program
2
Figure 1
INTERACTIVE STRUCTURES INC. PRESENTS
GRAY SCALE
PRODUCED BY THE PKASO ( T M ) INTERFACE
L H N
13 14 11
TEMPERATURE
BUFFER PH
called PRINTPIX. (Figure 5)
You'll need to have Business
BASIC to run this program.
b. Reconfigure the disk with the
following:
1. .GRAF IX (if you don't already
have it)
2. .PKASO. DRIVER from the PKASO
DRIVER disk, calling it
.PRINTER.
3. Follow the PKASO manual's
directions for changing system
parameters to make the
.PRINTER driver fit the
ma trixpr inter you own. In my
case, the instructions for the
Epson were found in Appendix
E.
c. Copy the following over to
PABLOPKASO:
1. PKASO. INV and PRINTPIX from
the PKASO DRIVER disk.
2. PIE. PIC from the Apple ///
System Demonstration disk.
3. BGRAF.INV from any Business
BASIC disk.
d. Check PABLOPKASO' s catalog.
It should look like Figure 6.
You now have a disk, PABLOPKASO, from which
you can use the PKASO in Apple l// x s native
mode. It's important to know about Apple
Ill's FOTO files, these are the files Apple
/// stores graphic images on. It so happens
that the System Demonstration disk which
came with my system has a graphics
presentation including reading in a FOTO
file called PIE. PIC. When you run PRINTPIX
and use PIE. PIC for your input, the picture
that results can be seen in Figure 7. It's
in Apple ///' s graphics mode 2 (560 x 192
Black and White.)
I really am impressed with the system and
that I have access to both Apple II' s and
Apple Ill's graphics capabilities which are:
1.
Apple II:
a.
Lo-Res. 40x48,
16
colors.
b.
Hi-Res. 280x192,
6
colors.
2.
Apple ///:
a.
Mode 0. 280x192,
Black and White.
b.
Mode 1. 280x192,
16
colors
(restricted) .
c. Mode 2. 560x192, Black and White.
d. Mode 3. 140x192, 16 colors
(no restrictions) .
I very much enjoy what this system has
enabled my Epson to do. The only serious
thing to complete this system is to get
access to Apple /// software to create the
graphics in the first place, then storing
these screen images on FOTO files for
PRINTPIX to read in and print from.
I wrote a small program called BUILDAPIX to
generate FOTO files in any of the 4 modes
you choose. It uses a Cursor /// to
scribble on the screen, sort of a high-tech
ETCH-A-SKETCH. If you don't have a
joystick, then you substitute code of your
own in the part of the program actually
generating the graphics (lines 1290-1460.)
Figure 8 is a listing of the program. Note
that after I wrote this program, I stuck it
onto PABLOPKSO.
Some oddities of the system I need to
mention. Sometimes a picture looks better,
more detailed when it gets printed on its
side. Figures 9 and 10 are two printings of
the same picture, one rotated ninety
degrees, and the other not rotated at all.
Another quirk is what happens when you
specify to PRINTPIX an incorrect graphics
mode (remembering that Apple /// has four
graphics' modes). This is the bar chart
you've just seen, rotated and normal. It is
in graphics' mode 3, 140 x 192 16 colors (no
restrictions). When I asked PRINTPIX to
print it, I specified mode 1, 280 x 192 16
colors (restricted). Figure 11 is an example
of what happened.
In summary, I am very much taken by the
capabilities of the PKASO system. I have
generated graphics yet am still able to list
stuff from APPLEWRITER ///. My only regret
is not knowing about this card before I got
the Universal Parallel Interface Card.
There's one last thing I'd like to show you.
Figure 12 is a small picture of an Apple II
picture. Figure 13 is a tiny fraction of
the same picture printed very large. Note
that this shows a giant close-up of the
woman' s left eye!
4
INTERACTIVE STRUCTURES INC. PRESENTS
HIRES GRAPHICS
PRODUCED BY THE Pk.ASO < Tli ) INTERFACE
NOVE PICTURE TO THE LEFT MARGIN AND USE INVERSE PRINTING
Figure 2
5
INTERACTIVE STRUCTURES INC. PRESENTS
LORES GRAPHICS
PRODUCED BY THE PKASO (TM) INTERFACE
Figure 3
INTERACTIVE STRUCTURES INC. PRESENTS
A SPECIAL CHARACTER DEMONSTRATION
PRODUCED BY THE PKASO < Tli ) INTERFACE
F I :....!:■:! CONTAINS:
US i , " 1 4 E " 7 s ~ ' ©.uAwa n C;; 1 #0 r i . !: t ll
©< * J' XO''e Z " -
THIS IS MOW SPECIAL CHARACTERS CAN BE USED :
PKASOm i DENG DISK ©{jfi 1981
HIT '''-I pl'S TO STOP A BASIC LISTING..
T H E: S I G hi A l... I S 2 7 . 5 V L T S ::!:: 1 ..
T H E T E 11 P E E A T U R E I S P E E S E N "!" L Y 5 4 ° F
T H E F" E M U L A F R S U L P H L J R I C A C I D I S H S . 4 -
VOLUME OF A SP HERE ■■■■■■■■ 4 ir R 3 .,
FOE CHAT AN CLE IS SIN ■$> - 1 ' '?
A B IF AND ONLY IF B < 7..
4 • - NORES OUT TO .. 0625,.
Figure 4
7
"PRINTPIX" Listing
5 PP$= PREFIX$:REM SAVE CURRENT
7 prdev$=". printer" :REM change for a different device name
20 TEXT: HOME
30 PRINT CHR$(16)0
40 VP0S=08:HP0S=06:PRINT"Interactive Structures Inc."
50 VP0S=12:HP0S=09:PRINT"PKAS0 /// - PKASODMP"
60 VP0S=16:HP0S=04:PRINT"F0T0 File Graphics Dump Utility"
65 ON ERR OFF ERR: GOTO 8000
70 INVOKE " BGRAF . I NV " , " PKASODMP . I N V "
80 OFF ERR :TEXT: HOME
100 WINDOW 1,20 TO 80,24
105 cp$= PREFIX$
110 PRINT"Current Prefix: " PREFIX$
115 PRINT: INPUT"Enter new Prefix, <RETURN> for same Prefix, or <*> to end: "
• a$
125 IF a$="*" THEN TEXT: HOME: GOTO 8999
130 IF LEN(a$)=0 THEN 200
140 ON ERR GOTO 190
145 fl ag=0
150 PREFIX$=MID$(a$,l,LEN(a$)*(flag=0))+MID$(p P $,l,LEN(cp$)*(flag<>0))
155 IF flag THEN OFF ERR : GOTO 100
160 OFF ERR:G0T0 200
190 flag=l: RESUME
200 WINDOW 1,1 TO 80, 19: HOME
205 ON ERR OFF ERR : HOME : GOTO 8900
207 WINDOW 1,20 TO 80,24
210 0PEN#1, PREFIX$:INPUT#l;a$:PRINT a$: INPUT#1 ;a$: INPUT#1 ;a$
215 n=0:ll=3:mm=l:WIND0W 1,1 TO 80,19
217 IF mm>80 THEN mm=l:l 1=11+1 :n=n+l: IF n>90 THEN WINDOW 1,20 TO 80,24:PRINT
:INPUT"<Return> to continue: ";a$:WINDOW 1,1 TO 80,19:n=0
220 INPUT#l;a$:IF LEFT$(a$,5)=" " THEN 250
230 IF MID$(a$,3,5)o"F0T0 " THEN 220:ELSE VP0S=1 1 :HPOS=mm: PRINT MID$(a$,16,
16);:n=n+l:mm=mm+16:G0T0 217
250 ON ERR GOTO 300
260 PRINT a$:INPUT#l;a$:GOTO 260
300 OFF ERR: CLOSE
310 IF n=0 THEN PRINT"No FOTO files found!":FOR i=l TO 1000:NEXT i::HOME:GO
TO 8900
315 cp$= PREFIX$
320 WINDOW 1,20 TO 80, 24: HOME
325 PRINT"Current prefix: " PREFIX$
330 INPUT"File: ";a$:IF LEN(a$)=0 THEN 100
340 ON ERR OFF ERR: GOTO 320
350 PERFORM initgrafix: PERFORM gload.a$
360 OFF ERR
370 PERFORM grafixon:INPUT"";a$:PRINT CHR$(15);
380 INPUT"<RETURN> to print, <*> to change Prefix, or type a new filename: "
;a$:IF a$="*" THEN 100:ELSE IF LEN(a$)>0 THEN 340
400 WINDOW 1,20 TO 80,24:H0ME
410 INPUT"Enter picture mode (0..3): ";pmode:IF(pmode<0) 0R(pmode>3) THEN 41
420 INPUT"Enter select size (0..2): " ; size: IF( size<0) 0R(size>2) THEN 420
430 INPUT'Rotated? " ;a$:rot=0:GOSUB 8910: IF flag THEN rot=4
440 INPUT"Direct Black and White correspondance? ";a$:inv=0:G0SUB 8910-.IK fl
ag THEN inv=64
450 INPUT"Randomized Gray Patterning? ";a$:rand=0:GOSUB 8910:IF flag THEN ra
nd=128
Figure 5
"PRINTPIX" Listing (con't)
460 HOME
465 PRINT"Print code: "pmode+size*8+rot+inv+rand" ";
470 PRINT"Mode: "pmode" Size: "size" ";
472 IF rot<>0 THEN PRINT"Rotated ";:ELSE PRINT"Not Rotated ";
474 IF inv<>0 THEN PRINT"Direct ";:ELSE PRINT" Inverted ";
476 IF rand<>0 THEN PRINT"Randomized";:ELSE PRINT"Fixed Patterns";
478 PRINT
480 INPUT"<RETURN> to print, <C> to change these settings, <*> to select new
file: ";a$:IF a$="*" THEN 320:ELSE IF a$="c" OR a$="C" THEN 400
490 PERFORM bpkasodmp((?prdev$,%pmode+size*8+rot+inv+rand)
492 INPUT"Another dump of this picture? ";a$:G0SUB 8910:IF Hag THEN 400:ELS
E GOTO 320
8000 HOME
8005 VP0S=8
8010 PRINT"BGRAF.INV or PKASODMP.INV not found!"
8015 PRINT
8020 PRINT"Use your SYSTEM UTILITIES disk to copy"
8025 PRINT
8030 PRINT"BGRAF.INV from your Business Basic disk,"
8035 PRINT
8040 PRINT"PKASODMP.INV from your PKASO /// disk,"
8045 PRINT
8050 PRINT"onto your working di sk." :PRINT:PRINT
8060 END
8900 PREFIX$=cp$:G0T0 100
8910 flag=0:a$=LEFT$(a$+" ",l):flag=(a$="y") 0R(a$="Y") :RETURN
8999 PREFIX$=pp$:END
Figure 5
PABLOPKASO
Size Modified Time File type Eof Phys
*S0S. KERNEL
*SOS.DRIVER
*SOS.INTERP
*PIE.PIC
*BGRAF.INV
*PRINTPIX
*BUILDAPIX
*PKASODMP.INV
43 l-Nov-82 0:00
41 5-May-OO 0:00
50 ll-Sep-81 0:00
32 ll-Sep-81 0:00
20 ll-Sep-81 0:00
5 <no date> 0:00
4 5-May-02 0:00
12 22-Mar-82 0:00
Sosfile
Sosfile
Sosfile
Fotofile
Codefile
Basicprog
Basicprog
Codefile
512
512
512
512
512
303
50
512
44
42
51
33
21
6
5
13
8 files listed, 58 blocks available
Figure 6
mm UA Dept. of ill, WD
-x r-rilic Colleges ......
X y . Private Colleges
UK ^ — Private fiijh Schools
level of School Percent
Public Elementary
I Public High Schools
Private Elenentary
Private High Schools
Private Colleges
Publ ic uslieses
5ft
ltt
at
i-'i
Figure 7
r' R SALE S RECORD
Ci d O Q C& O
S © " S 1
Y -a s-~
Figure 9
Figure 10
lO
"BUILDAPIX" Listing
1000 FOR i=l TO 24: PRINT" " : NEXT i
1010 VP0S=04:HP0S=13:PRINT"PR0GRAM TO CREATE A FOTO FILE"
1020 VP0S=07:HP0S=25:PRINT"This is a utility program to create a FOTO file"
1030 VP0S=11:HP0S=25:PRINT" B&W280 Black & White 280x192"
1040 VP0S=12:HP0S=25:PRINT" 1 — C0L280 Color 280x192"
1050 VP0S=13:HP0S=25:PRINT" 2 — B&W560 Black & White 569x192"
1060 VP0S=14:HP0S=25:PRINT" 3 — C0L140 Color 140x192"
1070 VP0S=09:HPQS=25:PRINT"WHICH GRAFIX MODE WOULO YOU LIKE"
1080 VP0S=09:HP0S=57: INPUT A$
1090 M0DE=99
1100 IF A$="0" THEN MODE=0
1110 IF A$="l" THEN M0DE=1
1120 IF A$="2" THEN M0DE=2
1130 IF A$="3" THEN M0DE=3
1140 IF M0DE=99 THEN GOTO 1070
1150 VP0S=17:HP0S=25:PRINT"WHAT WOULD YOU LIKE TO NAME YOUR FILE"
1160 VP0S=17:HP0S=62:INPUT B$
1170 VP0S=19:HP0S=25:PRINT"Your file will be GSAVEd with the name of"
1180 VP0S=20:HP0S=25:PRINT b$;".MODE";mode
1190 VP0S=21:HP0S=30:PRINT"(hit enter to continue)"
1200 VP0S=21:HP0S=53:INPUT c$
1210 OPE N#l , " . GRAF I X " : I NVOKE " BGRAF . I NV "
1220 buffer=l
1230 PERFORM IN ITGRAFIX: PERFORM GRAFIXMODE(%MODE,%BUFFER)
1240 C0L0R%=3
1250 IF MODE=0 THEN COLOR%=0
1260 IF M0DE=2 THEN COLOR%=0
1270 PERFORM FILLC0L0R(%C0L0R%) :PERFORM FILLPORT
1280 PERFORM grafixon
1290 REM this program uses a CURSOR /// to draw lines on a screen.
1300 REM When the CURSOR ///'s button is pushed, drawing is stopped
1310 REM and the screen is GSAVEd to a FOTO file.
1320 REM
1330 PERFORM moveto(%PDL(0) ,%PDL(1) )
1340 IF mode=0 THEN xmult=280/256
1350 IF mode=l THEN xmul t=280/256
1360 IF mode=2 THEN xmul t=560/256
1370 IF mode=3 THEN xmul t=140/256
1380 ymult=192/256
1390 REM
1400 REM
1410 REM LOOP to draw lines.
1420 REM
1430 IF BUTTON (0)>0 GOTO 1470
1440 x=xmul t*PDL (0 ) :y=ymul t*PDL( 1 )
1450 PERFORM 1 i neto(%x,%y)
1460 GOTO 1430
1470 TEXT
1480 D$=B$+".MODE"+A$
1490 PERFORM GSAVE.D$
1500 END
1510 REM This program was written May 7th, 1983 by Jim Linhart
1520 REM of Berkeley, California and is donated to the Original
1530 REM Apple ///'ers Users Group. It is in the public domain.
Figure 8
11
APPLEWRITER ///
by Rudolph H. de Jong, M.D.
AppleWriter /// ( AW3 , ) written by Paul
Lutus, is copyrighted and supported by the
Apple Company. Its $225 price tag is in the
middle range of comparable word processor
(WP) packages. Like Quark's Word Juggler
(not tested), AH3 is uniquely powerful
because it is tailored for Apple ///
hardware and the SOS operating system.
For instance: SOS, device drivers, AW3
program code, and text deletion and
insertion buffers are loaded into one 64K
memory stack, leaving a second 64K stack
completely free for text. Compare that with
an Apple ][ WP package in 48K emulation
mode, or a product designed for SoftCard
CP/M for instance; you'd be lucky to have
more than 32K working core left over for
text. With all editing done in core, those
frequent and annoying delays for in-and-out
disk swapping are avoided altogether.
AW3 thus is well suited to lengthy
manuscripts and fast turnaround.
AW3 is a screen-oriented WP written in
assembly language, which makes it fast and
responsive for it does away with plodding
language interpreters. A copy-protected
master disk and backup are provided with the
package. Following the 90-day warranty,
defective disks can be replaced for $15.
Regrettably, there is no hot-line for
consultation, intimidating potential buyers.
Noteworthy is a utility disk that enables
ready exchange of files between AW2, AW3
and MailList Manager. QuickFile /// files
too can be merged with AW3, operating as
a simplified MailManager list that can be
merged with a form letter.
By experimentation, I found that AW3 can
be used to edit Business BASIC text files.
In fact, you can write a BASIC program with
AW3, then save it to disk. Boot BASIC
and load the (text) file with the EXECute
command. Make whatever syntax corrections
are needed, RUN the program to see that all
is well, then store the file as a BASIC
program with the SAVE command. In writing
BASIC program text, the split-screen feature
is fantastic as you can hold your place and
scroll the text in the bottom viewport till
you find the line number for a GOTO or a
formating statement. In going through my
back issues, I found an article in the
September 1982 "Gazette" by Paul Wilson; it
provides all the details for using AW3
as a BASIC Editor.
The AW3 manual is poorly printed,
looking as if it were photo-copied
typewritten text; but it is crisply written,
detailed and quite complete. Lacking a
decent tutorial section, beginners will have
tough sledding getting started.
Fortunately, a "Product Training Pak" disk
and tutorial manual go far at making AW3
a lot friendlier (for an extra $40.) It
took my wife just three 45-minute sessions
with the Pak to compose, edit, correct,
save, load and print a business letter.
Perhaps the weakest point of the AW3
manual is the lack of a good index, though
the detailed table of contents and the
handy tear-out summary of commands table
compensate to some extent.
AW3 does just about everything expected
of a complete WP-package. Editing,
correction, deletion, insertion, global
searches, cut-and-pasting, saving and
loading all are executed by one- stroke
mnemonic control commands. An extensive Help
menu is available for the ten major WP
operations. The split-screen feature is
helpful, as when inserting text blocks in
distant paragraphs. Underline, bold-print,
sub- and super- scripting, shadow-print and
other printer instructions are easily
executed -- and enormously simplified —
with the handy "Glossary" (CTRL-G) command.
A personal glossary is easily built so that
a single symbol can represent a complete
character string. For instance, I defined
the up-arrow to send superscript, and the
down-arrow subscript, escape-codes to the
printer.
A pity that AW3 does not provide
user-definition of special keys to execute
common command functions. For instance,
erasing of characters, words or paragraphs
proceeds only from right to left. Hence,
the cursor must be moved to the end of a
string before it can be erased. As the
search-and-find commands leave the cursor in
front of the string, time is lost in
re-positioning the cursor. There is a
reason, of course, for when the direction of
the deletion command is reversed, the
character, word or paragraph is regurgitated
for insertion elsewhere in the text.
Included in the AW3 package is an unsual
'plus', the word processing language "WPL",
a batch-processor that executes all keyboard
editing and printing commands from a text
13
file. With WPL, you can automate procedures
like renumbering of codes, searching and
replacing text segments across files,
merging of address lists with a formletter,
and so on. WPL takes some experimenting to
learn well; it seemed included in the manual
as an afterthought with rather off-hand
rambling instructions. But learning WPL is
time well spent! The WPL examples provided
on the master disk are immediately
applicable, as in putting together a mailing
of formletter s.
Printer formating options are numerous and
extensive, and can be saved for later
retrieval. Additional printer formating
commands such as centering or formfeed can
be embedded in the text, making for
flexible, powerful, yet easily executed
control of output. Control and escape
command sequences for a particular printer
likewise can be embedded, a task made much
lighter by the glossary option. I have used
both the Silentype and the Spinwriter
printers to their full capability.
Text-justification includes a 'fill' option
to expand spaces between words for smooth
left and right margins.
True proportional spacing depends on a
printer so equipped, but fill justification
is an attractive and inexpensive alternate.
"Keeps" to reserve space for tables, figures
or footnotes are easily executed with
conditional form- feeds, where the paper
advances if there isn't room left to print
the next number of designated lines. In
fact, provision is made to stop printing at
designated text locations for display of a
message on the screen. This allows
insertion of a figure, for instance, or
change of a printing wheel.
Screen text is displayed as 24 lines of 80
characters, with provision for slow or rapid
scrolling up or down. The topmost display
line is occupied by an inverse-printed
"data-line" showing memory available, length
of text, file name and special options
selected. If you need the extra line, the
data line can be toggled in or out with the
escape key. Text wrap-around is
implemented, and likewise can be toggled.
Prior to hard printing, you can review page
formating commands on the screen by
"printing" to the console driver.
One sorely missed feature is a line counter,
you can't tell where a new page begins
without first printing a test run. Lacking
a line counter, "widows" ( 2 or 3 lines of a
new paragraph at the bottom of one page,
then continued on the next) are difficult to
predict. That problem is easily solved,
however, with the printer instruction [.FF5]
'form- feed if fewer than 5 (or whatever)
lines are left on the page', as I did in
this manuscript. Along the same line, the
screen doesn't show embedded commands such
as underline, superscript, bold-facing, etc.
In other words, you don't see what you get
till you print it.
AW3 is specifically written for the
Apple ///, so uses unique SOS features such
as time- stamping of files, modification of
printer drivers, selection of special
character fonts, etc. AW3 makes full
use of Apple /// memory, thus is fast and
responsive. With purchase of the Training
Pak, the basic editing and printing commands
are readily learned, preparatory to study of
the detailed manual. AW3 is a
sophisticated word processor, but it will
require time, and some experimentation, to
be fully mastered. An AW3-compatible
spelling dictionary is not available. That,
of course, prevents one from inserting
"soft" hyphens in the text.
I found the learning effort worthwhile
because AW3 is a powerful word processor
that takes full advantage of the Apple ///
hardware and SOS operating system, and at a
reasonable price. AW3 also does an
excellent job of working on the text files
generated by other Apple software such as
ACCESS /// or QUICKFILE ///. You can even
use it to write lenghty BUSINESS BASIC
programs.
If Apple could put its skilled writing teams
to work revising and upgrading the manual,
it would have an outstanding WP package for
the business world. At the very least,
Apple would be well advised to include the
Training Pak in the package at no additional
cost to the purchaser. Till then, and
without apparent factory interest or
support, less powerful but friendlier
packages likely will prevail. At the
moment, AW3 is best suited to the
full -time author who needs the many unusual
and practical features provided, and is
willing to invest a hit of extra effort.
Pascal News for the ///
by Dennis Cohen
Apple has announced (and delivered) a number
of long-awaited Pascal products for the ///.
Trying to take these in some sort of
haphazard order, "The Pascal Technical
14
Reference Manual" (order no. A3L0006) is
back from the printers and being
distributed; Record Processing Services
(order no. A3D0018) is now available from
the dealers; and the Pascal 1.1 upgrade is
also being readied for distribution.
I've received my copies of RPS and the PTRM
and am quite pleased with them. The PTRM is
a wel 1 -written, technical reference that
answers (practically) every question I had
concerning Pascal on the ///. Included with
the manual is a disk containing Tim
O'Konski's "SOSIO" unit (see BYTE, Dec. 82)
in both source and code form for use as
either functions or procedures as well as a
supplement pertaining to this disk.
RPS is a very nice collection of routines to
assist the programmer wishing to develop an
ISAM database. The major advantage of RPS
is that Apple uses the package as its
standard, internal database interface. This
means that packages that use RPS will be
compatible with products from Apple.
The Pascal 1.1 release is being handled in a
new manner. Rather than leaving the upgrade
process to the dealers, a low-profit
activity for them and one that they do not
like, Apple is setting up a PO Box to which
you send your check and proof of purchase
(original Pascal 1 disk). After a
(hopefully) short wait, Apple will send back
a new set of disks and (all new) manuals.
Some of the features in the upgrade are:
1. PMOYE - a utility to move your SYSTEM
disk (e.g. to a Profile)
2. SANE - the Standard Apple Numeric
Environment, an intrinsic unit
that allows 64-bit integers;
32-bit, 64-bit, and 80-bit
reals; and string <--> real
routines. This package is
completely IEEE Floating Point
Standard compatible.
3. Extended Library Search — This means
that you can construct an
ASCII file containing the
names of 1 ibraries to be
searched, which extends the
Program Library concept.
Apple is not the only one with new
products for our favorite. Volition
Systems now has a compl ete Modul a-2
system running under SOS. Thi s compiler
is compatible with Pascal , which presents
some very exciting prospects to the
innovative programmer. The Modul a
package includes some interesting
examples in source form, a UNIX look-alike
called pNix (including pipes and the
Shell ) , a screen window manager, and
others. Though Apple isn't sayi ng
anything officially (as usual ) , they do
seem quite interested in the health of
Modul a on their products. My copy of
Modul a is scheduled for shipping next
week according to Volition, so I should
have a follow-up soon.
There is al so a very fine Apple ///
magazine being published in Ventura, CA
by Bob Consorti named "On Three" . I've
just received the third i ssue and it
keeps improving. The articles attack
everything: BASIC, Pascal , Assembly
Language, Emulation Mode, Apple Writer
///, WPL, Vi sicalc, etc. For those who
don't like to spend the time typing in
programs 1 i sted in magazines, there' s the
Disk of the Month containing all the
programs and routines in that i ssue for a
nominal fee ($9.95 + $1.50§S/Ht). The
subscription rate is $30 for twelve
issues. Contact "On Three", PO Box 3825,
Ventura, Ca 93006, (805) 644-3514.
If the Pascal (and Modul a) programmers
among you are looking for birds of a
feather, the UCSD p-System User Society
(USUS) is an organization to be seriously
considered. They have a very active
Apple SIG with ///rs holding both
co-Chairs and the Technical Li ai son to
Apple. The last two Chairmen were al so
///rs (one of them is now the Apple
Computer Company' s Pascal Product Mgr.) .
Thi s is a non-profit organization and
Apple is packaging USUS membership
applications in theirPascal upgrades.
The Portable A///:
The Radio Shack Lap Conputer as a
Peripheral
By Ed Horodko
I remember the first time I saw a TRS-80
Model 100. A computer to put in your lap. A
new gimmick, I said to myself. I glanced
again. It didn't look junky. But it surely
couldn't do much since it was so smal 1 . I
was in your typical Radio Shack, so I
figured the salesman wouldn't know
computers. I bought my batteries and left.
But the seed was planted.
In a week or so I was in a different R.S.
and there was that 1 i ttl e computer again.
The size of my dictionary, but less than two
inches thick, it just sat there in the shiny
di spl ay case. "$799," it said.
15
Okay, I'm an Apple /// user, I even was the
first kid on my block with 256K, PROFILE,
and CATALYST. But I asked anyway. I felt
like a kid in a candy store asking where the
prophylactics were but I asked anyway.
The salesman took it carefully from its
shrine. "These are great," he said. "What
could he know," I thought. I asked him one
question after another. He answered them
all. All the answers were good answers.
How big is the Liquid Crystal Display? 40
characters by 8 lines. To scroll, just push
the arrow buttons. Are those function keys?
Yes, each program defines and electronically
labels up to eight of them.
What do you need to get it to print? Just
about any parallel printer. Does it have a
modem built into it? A direct-connect modem.
Where do you load a program from? You
probably won't have to; this computer comes
with integrated softwareon built-in ROM.
Just select the program or document you want
from the main menu.
What are the built-in programs? A
word-processor, a communications program, a
telephone directory that can even dial for
you, an address program that can print
labels, a scheduling program that lets you
search a notebook data base, and a basic
language you can write in yourself.
"Oh," I said. My skepticism was waning.
"Don't you have to write to tape or disk or
something?" If you want to, you can save to
a normal portable cassette or load from it.
But the easy way is to use your RAM as your
storage. It comes with 8k and is expandable
to 32K.
You can also up and down load ASCII Text
Files easily using its communications
program and its RS-232 Serial Port. There's
even a BAR CODE READER PORT for future
program and data loading, but we don't sell
the wand or programs yet.
"What about power?" "If you stop
keyboardi ng for more than four minutes, it
shuts itself off. When you next turn it on,
it continues where it left off. It runs for
a week or so of normal use on four AA
batteries. Self-charging interior ni-cads
keep your RAM alive for a day or two, long
enough to get more batteries. We'll have a
$6 AC adapter for it in a few weeks."
Out of questions, I meekly left for my car
to think it over.
The TEXT EDITOR (by MICROSOFT, like the rest
of the software) was crude by WORD JUGGLER
or APPLEWRITER standards, but by normal
micro standards, it was very good as far as
it went. Easy cursor movement, block moves,
string search (but not replace), automatic
insertion, easy deletion... considerably
better than pen and paper, my current
briefcase method.
The Communications program was a delight.
Put your phone book in it. Searchfor a
string and there's your number. If you've
got your computer plugged into a phone line,
push one more key and the computer will
(rotary) dial the number for you.
Or using your modem-eliminator, RS-232
direct-connect the Model 100 to your Apple
///, run ACCESS/// or the like, and agree
with yourself on your protocol (I like 9600
baud, 8 bits, No parity, 1 Stop bit,
X-on/X-off enabled). You can now shuffle
ASCII Text Files to ^nd from a computer that
fits in your briefcase sideways.
And now, that's what I do. And it's great. I
originate documents on either computer, work
on the /// when I'm near it, work on the
Model 100 when I'm not. Its display is upper
and lower case, and it has an elaborate set
of graphics characters that could be useful
if you worked at it.
The full -si zed keyboard is a little noisy
but feels good, though it has no friendly
little dot on the K and D. One button turns
a section of the keyboard into a numeric
keypad. I haven't been able to get any of
its programs to crash, though it has several
levels of RESET for recovery.
Naturally, there are limitations to the
Model 100:
-Its maximum storage RAM is a shade
over 28,000 bytes (if you get it fully
loaded for about $1150). So good
housecleaning is imperative.
-If you forget which way is up or
down when you're up or downloading, you may
delete your file instead of transfer it.
-You want to be careful not to drop
it. It' s a computer.
-You can't (yet) crunch numbers on
it, though you can use it as a calculator in
Basic or write a math program yourself.
(Expect a Something-Calc ROM in early '84;
but conversion may cost you 8k of RAM.)
16
-Your Model 100 data base program is
no substitute for PFS, ThinkTank, etc., so
lots of kill tasks are not transportable.
-Overall, it's a little slow compared
to what I'm used to on my other computers.
But its type-ahead buffer helps.
It's not an kill. And because of its
awkwardness at large scale storage without
another computer to plug it into, I wouldn't
recommend it for solo business applications
other than executive notebook/phonebook.
But as an Apple /// peripheral, it's
fantastic.
Member Inquiries About Publication
Delays:
Since our last renewal mailing, we have
received many inquiries from members
regarding delays in publication of The Open
Apple Gazette. These letters range in nature
from the curious to the suspicious to the
down-right irate. In this editorial, I hope
to provide some insight into our production
procedure thereby satisfying the curious,
de-mystifying the suspicious and calming the
irate among you.
When we began to publish The Open Apple
Gazette, we sincerely hoped to produce a
bi-monthly newsletter that would ideally be
twenty-four pages in length. Those of you
who have been with us since the beginning
have seen the Gazette grow from the spindly
eight pages of Volume One, Number One, to
our most recent and highly informative
Volume One, Number Six, which numbered
twenty-four pages.
We realized we would need time to build-up
a membership base to generate enough
contributed articles to produce a quality,
bi-monthly newsletter of twenty-four pages.
Starting with Volume One, Number Two, the
Gazette has been a consistent twenty-four
pages.
In terms of production expense, our printing
costs are about the same for twenty-four
pages as they would be for six or eight
pages. However, the time spent in gathering
up the articles for publication, editing
them and performing the lay-out didn't seem
justifiable for an inferior production of
six or eight pages.
The period of silence between Volume One,
Number Five, and Volume One, Number Six, was
due in part to some necessary, internal
re-organization. The individual who was
helping with the club's mailings and
newsletter production walked out one day and
was not heard of again. We have since
expanded our staff to accommodate the
overwhelmingly positive response we have
received from Apple /// owners to our
organization. In March of this year we
relocated to a larger facility since we had
virtually outgrown our former office.
The above explanations are in and of
themselves reason for some delay. They do
not however, include one essential aspect:
the lack of contributed articles from our
members. The purpose of our newsletter is
to provide much-needed, quality information
to you, our members.
The majority of this information must come
from you, our reading audience. We are
interested in anything you have to
contribute having to do with your
experiences with the ///, or any of its
software programs or hardware attachments.
The more contributions we receive the more
frequently we will be able to produce a
quality, twenty-four page publication.
Our newsletter is only as outstanding as we
collectively work to make it. We have
instituted a new policy of sending members
who have programs or articles to contribute
two blank diskettes. One diskette they may
keep for their own personal use while on the
other they send back to us the program or
article they wish to contribute. We have
seen a very positive response to this
procedure and will continue it. All you
have to do is let us know that you have a
program or an article for the Gazette and we
will mail the diskettes to you.
You belong to a club which offers more than
a newsletter. Some of you will remember
when our Public Domain Library consisted of
only one Business BASIC .001 and one
VISICALC Template .001 diskette. We now
have a library containing over ten software
programs. Obtaining software for the ///
has always been a frustating experience. As
members you have access to these valuable
programs created and used by /// owners and
programmers. In addition, with our combined
buying power we are able to offer you
discounts on hardware like the GAMEP0RT III
and the MICR0-SCI disk drives.
17
Another service the group performs for its
members is in answering the many inquiries
we receive daily. If we do not know the
answer to your question, we get in touch
with the people who do so you will receive
the information you need. As we have grown,
so has the volume of letters we receive from
our many readers worldwide. Many of you
have found this service extremely helpful
especially when dealers and other sources
have been unable to give you the answers to
your questions.
We need to work together to help spread
information about the ///. Your
contributions and continued support will be
greatly appreciated.
WORD JUGGLER VS. APPLEWRITER ///:
A Worm In My Apple?
by Pamela Whitty
Last summer, I was introduced for the first
time to an Apple /// computer. Had anyone
asked me if I ever thought I would some day
operate one, I would have said unequivocably
"Never". Computers were so foreign to me,
they have a language all their own, and I
guess I was terrified that I couldn't keep
up with everyone else. Given no choice in
the matter by my employer, however, I
made-up my mind that it had to work for me,
no matter what the obstacles.
Since I am a secretary and my skills are
centered around typing letters and other
forms of text, I was mainly interested in
the word processing software packages that
would be available to me for the Apple ///.
I was given Apple Writer /// to learn
on. I met my first obstacle. I have to be
frank when I say that I did not find this to
be a very friendly piece of software.
The Apple Writer /// package includes an
operating manual and tutorial. The tutorial
is a new addition and is much easier to
understand than the operating manual. In my
opinion, the Apple Writer /// operating
manual was written by computer programmers
for computer programmers. The language is
simply too difficult to be understand by
someone who does not know a lot about
computers. There really is no rhyme or
reason to the order of the book. The table
of contents is not much better. You must
have your manual at your side at all times.
Here again, the language of the commands is
such that it makes it very difficult to
memorize any of them.
I suppose my biggest complaint is that I am
unable to display my document to the screen
without going back to my print set-up menu
and changing my print commands. This is
inconvenient and time-consuming, especially
if it is a long document and I need to view
it several times before I print it.
After many futile attempts of trying to
master Apple Writer ///, I was given a word
processing package designed by Quark called
Word Juggler.
Word Juggler is incredibly simple to
use. You don't even have to memorize any of
the command keys. The Word Juggler
package comes with a template that goes
around the number pad on your Apple ///
which identifies functions of certain number
keys on the keyboard. These include
printing, displaying to the screen,
returning to the menu and so on. A second
;trip fits above the top row of keys on the
eyboard and identifies special functions
such as centering, spacing, margins, page
lengths, etc. A reference card is also
included.
The manual for Word Juggler is
well-written, thorough, and understandable
(you don't have to be an engineer to figure
it out). The manual provides a tutorial to
help familiarize yourself with Word
Juggler. The tutorial takes you through
the ABC's of Word Juggler, and it really
is that simple, learning how the arrow keys
move the cursor around the screen (and the
text), how to delete characters, how to
store a letter on a disk and retrieve it,
how to search for a particular word or
string of words and replace it/ them with
another/others, page numbering, and other
tasks that are important to you in making
the appearance of your letter or document as
good as it can be.
One especially helpful feature is the
ability to move blocks of text around.
Word Juggler allows me to copy, move,
load, store, and delete blocks of text, all
by simply moving the cursor to the beginning
and end of the block in question and
pressing the space bar.
Word Juggler allows iT.e to insert other
Apple /// programs into any Word Juggler
document, such programs as VisiCalc and PFS.
This can be extremely useful when doing
letters that contain charts or graphs, or
mail lists when you don't want to be limited
to characters or lines.
18
Word Juggler enables me to view my
document on the screen in exactly the same
form I wil 1 see in print simply by hitting
the period key on my number pad. One
drawback, however, is that you cannot do any
editing while in thi s mode. You must return
to the edit mode to do thi s. After
struggling with Apple Writer /// to
accompl i sh thi s same thing, however, I do
not find thi s inconvenient in Word
Juggler at all .
Three months ago, I purchased my own Apple
/// and was given Apple Writer /// as part
of the package. I have never taken it out
of the package. As much as the Apple has
changed my life in that I can now take on a
much 1 arger workl oad with 1 i ttl e or no
difficulty, I woul d not have invested in my
own personal Apple had Apple Writer been the
only word processing package available to
me. It is simply not friendly and is
limiting for my purposes.
After 20 years as a secretary, it's hard to
break habits, even good ones. I want a
software package I can sit down with and
start using immediately. In other words, I
want my computer to be as easy to use as my
typewriter, but faster and more efficient.
Word Juggler has given me that ability.
I can even type at the Apple /// keyboard
and have the results print directly on the
printer.
After almost nine months with Word
Juggler, it is still as friendly as ever.
I have always been in the habit of bringing
work home with me. I can now say it is
almost a pleasure. When I f ini sh at the
office, I pack up my things and Word
Juggler and continue at home. After I
have compl eted my work and done my
formatting, I bring it to work the next day
and print it. I al so have Lexi check, which
is a Spelling Checker with a 30,000 word
dictionary. Thi s is just one of many
accessories from Quark to enhance Word
Juggler' s capabil i ties.
I know there are features I haven' t
mentioned about Word Juggl er. The truth
is, I am stil 1 di scovering new ways to get
more out of thi s word processing package.
Word Juggler is easy to use, can be
1 earned quickly, is always friendly, and
forgiving. Thi s is so important to a
beginner. It is obvious to me that a great
deal of care and pi anning went into thi s
package. Until Apple comes up with something
better, thank you, Quark, for Word
Juggler!
The KOALA TOUCH PAD and the GAMEPORT
III:Doing More With Your ///
by Ed Horodko
I have an Apple ][ at one of my offices, and
a /// at the other. You may realize al ready
that thi s is asking for trouble, since many
computer product manufacturers consider the
/// to be a repl acement ( "upgrade") for the
][, not a computer you may want to have
additionally. That dull idea is not the
only problem confronting the ][ and ///
user. Strangely, the ///' s abil ity to
emul ate the ][ has some sini ster
'limitations' .
There 1 s a new product that helps. No,
you' re still stuck with using only 48K of
your 256K. Your "free" printer card is
still in Slot 6 instead of Slot 1. But at
least you'll finally have an Apple ][ Game
1/0 port, thanks to MICRO-SCI'S GAMEPORT
III, a card for one of your precious slots
that provides a reasonable facsimile of a
real 16-pin ][ gameport.
You can plug in Apple ][ paddles and
joysticks. You can even connect 1/0
devices, 1 ike remote control systems and
software protection keys. Your ][ games
finally work right on your ///, as well as
your ][ graphics-drawing programs.
To run many ][ programs, you'll need a
specially modified Emulation Di sk which
MICR0-SCI shows you how to make very easily.
But when you emul ate with that di sk , your
computer may freeze later when pressing
RESET. A small price to pay. Thi s card' s
presence will not interfere with most native
mode operations. You cannot, however, use
the GAMEPORT III in native mode.
The retail price for the GAMEPORT III is
$75. Documentation is adequate and use is
simple. Without the GAMEPORT III, I
don' t think you can use the very remarkable
KOALA TOUCH PAD on your ///. I spent
hours tryi ng to wire it to the game holes
on the back of my ///. No success.
The TOUCH PAD offers a new kind of
user-interface. It performs just 1 ike the
mouse, graphics tablet, game paddle,
joystick, and game buttons. And though it
doesn't work in Native, plugged into the
GAMEPORT III it's a delight in
emulation.
19
The KOALA TOUCH PAD is handsome and well
designed. It has two big buttons and a
4.25-inch square surface you press or draw
on with with your finger nail or a stylus.
Retailing for $125 (!), the KOALA TOUCH
PAD comes with a program called
MICRO-ILLUSTRATOR, which has a mouse-driven
menu. This program lets you easily draw
freehand, fill areas with color, and make
lines, circles and boxes. Pictures are saved
as standard 3.3 picture files (about twelve
to a disk).
This program is somewhat limited in scope,
but who cares? A more elaborate
version called ILLUSTRATOR gives you lots
more colors and lets you type in text in
various fonts and sizes. It costs $150.
My impression is that software makers are
starting to line up outside Koala
headquarters so they can write their ware to
utilize the Koala Pad as Mouse or, with
template, as new dedicated function keys. A
good time will be had by all.
New Periodical To Aid Physician
Computer Users
A new medical newsletter, Physician
Computer Monthly , provides
information to the growing number of
doctors who use micro and minicomputers
in their practice.
This 12-page, independent periodical
covers computer applications for
practice management, patient care,
continuing medical education, and
communications. Written in
non-technical language, Physician
Computer Monthly emphasizes practical
uses of computers by physicians.
One year subscription is $95. A sample
issue will be provided free to
physicians upon receipt of letterhead
request; non-physician samples $2
each. Write Physician Computer
Monthly , 67 Peachtree Park Dr.,
Atlanta, GA 30309.
STEMS AND SEEDS:
UPGRADING YOUR 128K APPLE /// TO 256K FOR
LESS $$$
If you have a relatively recent vintage 128K
Apple /// and feel the need to expand your
system memory to 256K, you may be able to do
it yourself very easily and for considerably
less that the $600 charged by Apple. Last
Fall, while installing a clock chip in my
///, I noticed that the memory board on my
machine had a row of 16 empty chip sockets.
Next to it was an identical row of sockets
filled with 16 chips marked HM4864-3.
Looking this number up revealed that this
was a 1 X 64K, 200 nanosecond dynamic RAM
made by Hitachi. I wondered if I couldn't
just buy 16 similar chips, plug them into
the empty sockets, and maybe double the
memory.
Well, it worked! If you shop around, you can
buy equivalent RAM chips for as little as
$7.50 each and double your memory for as
little as $120! This will undoubtedly void
your warranty, if you are concerned about
such things. You may also have an earlier
version of the memory board. There have
been 2 or 3 versions apparently, and if you
have an earlier one, you are out of luck.
Incidentally, I recommend the use of an IC
insertion tool when installing the chips.
It makes its easier.
Ken Johnson
Amherst, MA.
-///-
Beginning BASIC Series
Due to the quantity of information we have
for this 32 page issi \ Stan Guidero's
"Beginning BASIC" series will continue in
our next Gazette, Volume Two, Number Three.
Physician Computer Monthly joins ///
eleven other newsletters published by
American Health Consultants, a
ten-year-old medical communications
firm.
20
THE AXLON RAMDISK 320
By Stan Guidero
For those of you who know nothing about
pseudo disks, I will start with a short
explanation. To put it simply, a pseudo
disk or ramdi sk is used the same way you
would use a normal disk drive. The
difference is that the unit uses RAM chips
in place of a floppy disk. So what's the
advantage you ask? Speed is the answer. The
ramdi sk does not use a mechanical mechanism
which tends to slow things down. Because
there are no moving parts, it takes a third
of the time required by a floppy or hard
disk. A program that takes almost 5 seconds
to load may only take 1 second to load and
run with a ramdi sk. You can see that this
would come in handy when handling data or a
program with several modual s like an
accounting system.
If you work with Pascal or use a Data
Management System that requires the exchange
of several different disks, then the Axlon
RAMDISK 320 is for you. It isn't intended
to be used as a mass storage device
(although it could be used as such,) but as
a high-speed Data handler. The RAMDISK is
handled by SOS in the same way it handles a
hard disk or a Profile. The RAMDISK can be
formatted either as two 143K disk drives or
one 320K disk drive. Thus, two SOS. DRIVERS
are included in the RAMDISK package. I
found little use for the two drive set- up
on the Apple /// and mainly used the single
drive drive.
The Axlon RAMDISK 320 comes in a
separate case that looks like a disk drive
][ for an Apple ][ and sits next to your
Apple ///. It has its' own power supply and
a built-in three hour rechargeable battery
to prevent memory loss. Installation is
simple; an interface card is plugged into
one of the slots in the ///, preferrably
slot #4. Attaching the ribbon cable was the
only difficult thing I had to do. If you
didn't watch what you were doing you could
easly plug it into the interface card upside
down or even one or two pins off.
Manufacturers should realize that people not
technically oriented are the ones who
usually buy Apple 111% and take that into
account when designing computer peripherals.
After checking the manual to make sure I was
doing it right, I plugged the RAMDISK 320
into the ///. After connecting the power
cords (both the Apple and RAMDISK,) into the
wall, I turned on the power. Nothing popped
or sizzled so I figured I was safe. The
next thing to do was to add the proper
driver by using the SOS Utility Program. Two
drivers are available on the accompaning
disk. I first decided to use the two driver
emulator.
First, I tried the RAMDISK 320 with the
Pascal System. I tried the two-drive method
but found the system was spending too much
time looking through all the various drives
every time I wanted to change system
modual s. I switched to the single large
drive. I then placed most of the Pascal
System on the RAMDISK and found it took much
less time searching but it still looked at
.Dl and .02 every time I went from the Filer
to the command line or from the Editor to
the command line.
After much experimentation, I finally came
up with a method that sort of worked, not
perfectly, but it worked. I placed the
system files SOS.KERNAL, SOS. DRIVE,
SOS.INTERP, SYSTEM. PASCAL, and
SYSTEM. MISINFO on my boot disk. Next I
placed all the other system and library
files on the RAMDISK. Incidentally, the
Pascal device number for the RAMDISK is #9
which is the same as a hard disk. I used
the SOS Utility to do the transfering. I
then named the Volume /RAMDISK. After
booting up the system, I then pressed "F"
for the filer making sure there was no disk
in .D2 so that the only place it would find
the filer would be the RAMDISK.
I then did the same for the EDITOR. The
main problem came when I tried to compile a
program. The system work file is kept on
the onboard (.Dl) drive making compiling as
slow as ever. I avoided this problem by
writing my work files to the RAMDISK. Thus,
the Apple spent far less time accessing the
work file. The only time the onboard drive
is accessed is when going back to the main
command line.
It was a pleasure to simply strike a key to
go to the EDITOR and wham: in less than two
seconds I was there! Fixing programming
errors was no longer a lengthy chore and
through all this the RAMDISK performed
fl awlessly.
The RAMDISK will work with the Softcard ///
under CP/M. You use the Softcard ///
utility disk to change the DRIVER. SOS on the
21
boot CP/M disk. From there on it is handled
like a hard disk. I'm also told it will
work in the emulation mode, but who cares?
Not all is perfect. There are a few things
I don't like about the RAMDISK, foremost
being the price. At $1350.00 it's no
bargain. If you're going to pay that kind
of money, you should have a definite need
for it. Second, the case that it comes in
is identical to the Apple ][ disk drive and
not the Disk /// case. Of course I've
already mentioned the problem with
hooking-up the ribbon cable to the interface
card.
One other thing bothers me. Even though
during the month I had the unit for testing
it showed no memory failure problems, and
not even so much as a clitch, I can't help
thinking about all those little RAM chips
jammed together in that non- ventilated box
and how hot they must get. The outside of
the box is much hotter than either the Apple
/// or my monitor. Some ventilation would
make me, and probably the chips, breath
easier.
If you need fast data access for a specific
job, such as Pascal programming or
mul ti-modual program package usage, then the
Axlon RAMDISK 320 is for you. But you
will have to decide if having the extra
speed is worth the price.
-///-
Release of BACKUP /// For PROFILE Owners
Late last year, as many of your readers may
know, Apple Computer, Inc., announced the
availability of BACKUP ///, a utility
program for backing-up the PROFILE. Apple
indicated that it would soon start shipping
BACKUP ///'s with all new PROFILES and that
it would send a copy of BACKUP /// to all
current PROFILE owners of record.
BACKUP /// is a fine utility program. It
allows back-up of volumes, subdirectories or
files in three different ways; (1) by entire
volume, subdirectory or file, (2) by files
modified since the last back-up or (3) by
files modified after a certain date and
time.
If current PROFILE owners cannot get their
copy of BACKUP /// through their dealers,
they may obtain a copy by sending a written
request, together with thei r PROFILE serial
number to:
Peripheral Systems Product Support
Apple Computer, Inc.
Mail Stop 20-C
2730 Orchard Park Way
San Jose, CA., 95134
Apple ///'rs Beware: Tiae Clock Mail
Fraud?
Dear Mr. Norris,
I am an Apple /// owner, and am writing this
letter to inform your Apple /// user
organization of a company which is, at my
best perception, engaging in mail fraud
dealing with a proposed Apple /// product.
The product is a kit for modifying a
personal computer (namely the Apple ///) for
a real-time clock function. To the best of
my knowledge, this kit consists of an
integrated circuit (MM58167A clock chip), a
battery holder, some batteries, and
instructions. The advertised price for this
product was $60.00.
I had sent out my order during the week of
May 16, 1983 and had waited four weeks until
I became uncertain of the product's
delivery. I found from my monthly checking
statement that System Fabricators had cashed
my check on June 3, 1983. I then called up
their advertised phone number, (213)372-6273
and found out that their phone is
disconnected. I sent the enclosed letter
out via registered mail, but I have not
received confirmation that the letter was
received from the Post Office.
I am enclosing a copy of the letter which I
have sent to System Fabricators, located in
Hermosa Beach, California. I am having
difficulty in obtaining a product from them
which I have requested through the mail and
for which I have paid $60.00 in the form of
a personal check. The product was
advertised in Apple Computer Users magazines
like Apple Orchard, Vol . 4 No. 1, and in
Softalk magazi ne .
I would like to get my money back from
System Fabricators, for I have no confidence
in their integrity as a company, and
therefore, their product. If your
organization can help me towards this goal,
I would be grateful. At the very least,
your organization should be notified that
this suspicious vendor exists and may prey
on other unsuspecting customers.
Sincerely,
Chester M. Lee
Framingham, MA.
22
Installing APPLE WRITER /// Utilities On
PROFILE With CATALYST
Dear Sirs;
In Volume 1, No. 6, of the Open Apple
Gazette , Allan Bloom wrote of his
difficulties in installing APPLE WRITER ///
Utilities On PROFILE with CATALYST. I have
found that the installation can be done by
following the procedure listed below:
1. Transfer the following files:
FROM AW3UTIL
SYSTEM. LIBRARY
MLMTRAN.CODE
SOS.INTERP
SYSTEM. STARTUP
TO .PROFILE /C AT AL Y ST / AWUT
STARTUP. LIB
MLMTRAN.CODE
AWUT (or your preferred name)
STARTUP. CODE
DO MOT TRANSFER SYSTEM. PASCAL
2. Add AWUTIL to the CATALYST menu and
enter the program options as follows:
1) . Display Name: AWUTIL (or your preferred
name)
2) . Interpreter Path: CATALYST/AWUT/AWUT (or
however you name it)
3) . Character set path: DEFAULT
4) . Screen: Normal
5) . Keyboard Path: DEFAULT
6) . Initial Prefix: . PROF ILE/CATALYST/AWUT
( see above)
7) . Maximum files allowed open: 3
8) . Programs path:
CATALYST/AWUT/STARTUP.CODE
TO RUN AW30UTILITIES:
1. Call AWUTIL from CATALYST Menu. You
will get the message "Put Pascal System
Disk in built-in drive, press Return".
2. Put AW30UTIL Disk in built-in drive
(.dl) and press "Return".
3. Run Program.
Transfers will operate between built-in
drive (.dl) for Apple II disk and .d2, etc.
for Apple /// disk.
CATALYST will still be operating so you can
use double Apple-Escape to return to
CATALYST menu when finished with AW30UTIL.
This way you need not boot the AW30UTIL
disk. You will be able to return to the
CATALYST menu at any time. The only
di scomfort is in the exchanging of the
CATALYST disk and the AW30UTIL disk.
In effect, you are using a two- stage boot,
as in non-CATALYST times, and when the System
Pascal is taken from .dl the built-in drive
is properly identified for these programs.
I have been using thi s method I developed
after having the same di saster strike me as
struck Mr. Bloom. No di saster has occurred
using thi s method.
If someone can tell us how to use CATALYST
to get Apple II Emulation I think that that
woul d eliminate the only non-CATALYST
booting I am still doing.
Hope thi s helps,
Harold A. Drob
Academic Affairs Office
S-115
University Of Cal ifornia
San Franci sco, CA. , 94143
23
More CATALYST Notes:
STEMS AND SEEDS:
Dear Don,
Thanks, very much, for your July 20 note
with Harold Drob's July 13 attached. (See
this issue's Reader Reaction Section). As I
said in my reply to him, it' s awfully nice
to find helpful, caring people. I also sent
him a copy of my own solution to the "Apple
Writer Utilities" problem, a simpler and
more general one that I sent you some months
back.
I'm delighted with the SOS 1.3 Revision
Utility. I'd swiped a copy of the SOS
Kernel file from a colleague's "Discourse"
spooler some months back, but the new
drivers were worth the freight. I also
appreciate the note in Vol. 1, No. 6, about
the drivers that shouldn't be installed
under CATALYST.
The "AppleWriter /// Bug??" (See our last
issue, Vol. 1, No. 6) question from Joe
Pase and Charles Bryant has a familiar ring
to it. If they are running under CATALYST,
the problem and solution are simple. When
AppleWriter is booted up, the "Press RETURN"
message causes a read to .01 to find the
SYS.PRT and SYS. TAB files. If either is not
found, a SOS "File Not Found" message pops
up, but it doesn't prevent you from
continuing. AppleWriter does not initialize
values for the PRT and TAB data. Tabbing is
particularly spectacular with garbage in the
TAB data area. You go to the end of the 64K
workspace, and the program hangs-up. A cold
re-boot is necessary. Sound f ami 1 iar?
This particular problem is yet another
example of poor programming practice. If a
program absolutely needs a file to function,
and if it doesn't find one, it should have
the courtesy to tell you so and to not
proceed until you correct the problem.
Unless/until that bug is fixed, you have to
look out for yourself. I keep a Profile
subdirectory containing my default SYS.PRT
and SYS. TAB files (the HELP stuff from the
AppleWriter master should be there too, if
you're into such) and I just copy its
contents to every new data disk.
Yours truly,
Al Bloom
2303 San Marcos St.
Blacksburg, VA., 24060
Counting the Total Number of Words I n A File
using APPlTHRnER 777
Here's a hint for APPLE WRITER /// users: If
you want to count the total number of words
in a file (very necessary to writers), you
can load the program "COUNTER" from the
master disk and change the line beginning
"LOOP " to this:
LOOP F<$B<$B<
After saving the above as " WORD. COUNTER" ,
you can run it in the usual way for WPL
programs ([P] DO WORD. COUNTER), but when
prompted for "Enter word:", you should type
in thi s:
( spacebar)?
To be more exact, press the spacebar, then
the question mark with no spaces between.
After pressing RETURN, the program will
count all the words in the document.
Pressing CONTROL-5 (5 on the numeric keypad)
will darken the screen and speed up the
count. When the count is finished, the
screen will come back on automatically.
Sharon Webb
Blairsville, GA.
[Ed. Note: Adding "PPR [V][N][V]" to
your program will execute the "CONTROL-5"
function automatically without having to
perform this extra step.]
-///-
STEMS AND SEEDS:
EPSON Printer Interface Cards
Alpine Computing, Inc. of 84 West 100 North,
Logan, Utah 84321, is marketing Apple ///
driver routines which allow you to drive the
EPSON parallel printers through the EPSON
interface card, thus saving the cost of
buying Apple' s Universal Parallel Interface
Card. The routines sell for $20.00 and have
worked well for me.
Barry R. Weller
Assoc. Prof, of Economics
Penn State University
-///-
24
Exploring Business Basic - Part Seven
By Taylor Pohlman
Reprinted from Softalk Magazine
Last month we explored some of Business
Basic's unique formatted output and
arithmetic capabilities. There is a good
more to say on those topics, but such
exposition will be left to some future
month. This month we'll undertake a journey
through some of the thickest jungles found
in the Apple III: the infamous .GRAF IX
driver and its faithful Indian companion,
BGRAF.INV (the preceeding collection of
mixed metaphors was just a sample of what
some enterprising explorers have encountered
on their own trips).
The new Business Basic manual (which
everyone who purchased Basic should have
received by now), contains a sixty-page
section in volume two that describes the
programming possible with th§ BGRAF.INV
invokable module. In addition", the
"Standard Device Drivers Manual" contains a
section on .GRAFIX. Rather than repeat all
of that material, this column will briefly
describe the functions of BGRAF.INV and then
take up a subject that's not mentioned at
all: how to draw a circle.
Drawing a circle may sound easy, but given
that BGRAF allows only dots and lines, and
given that none of the graphics modes have
equal horizontal and vertical resolution,
and given that monitors distort images
because of "aspect ratio" differences,
drawing a circle of arbitrary radius with an
arbitrary center that actually looks like a
circle and doesn't take forever to finish is
non-trivial. Non-trivial is a favorite word
of mathematicians and engineers, principally
because it allows them to assert that a task
is difficult without requiring that they
figure out how difficult.
Well, enough cheap shots at mathematicians.
We will discover later that some handy
mathematical principles will serve us well
in our quest for the perfect circle.
The BGRAF Invokable Module. As has been
discussed before, Business Basic is almost
infinitely extensible by the use of
"invokable" assembly language routines.
These routines can be loaded into memory
only when needed, and have the effect of
adding extra commands to the language.
Furthermore, as many invokables as will fit
into memory can be used at once, with Apple
Ill's SOS operating system responsible for
making sure that there are no conflicts.
BGRAF.INV is one of the most useful of the
invokable modules. It is supplied on the
Business Basic program disk, and is loaded
into memory with the command:
INVOKE "bgraf.inv"
Those of you who have Apple II 's, or who
have used Applesoft in emulation mode on the
Apple III, know that there are several
commands in that language to manipulate
color graphics. Among these are "gr" and
"hgr," "color" and "hcolor," "plot" and
"hplot" that permit initializing graphics
modes, changing colors, and plotting points
and lines. In addition, Applesoft has
special commands that permit the
manipulation of shapes based on special
tables that describe the bit patterns of the
images.
The BGRAF invokable has commands for all
these capabilities, and a great deal more
besides. Unlike Applesoft, which has a
fixed high-resolution page for drawing, the
Apple III graphics modes permit plotting
points within a range of -32768 to 32767.
The concept of a "viewport" (like the window
in text mode) is what defines which dots
actually get plotted on the screen. Only
the dots within the current viewport are
actually plotted, and the viewport is
limited to the maximum resolution of
whatever graphics mode is selected.
We'll see shortly how handy this is, because
it permits plotting generally without regard
to whether the physical screen limits are
exceeded. Exceeding the valid range in an
Applesoft program causes an error. In
addition, setting the viewport to an area
smaller than the physical screen permits us
to draw without worrying about overwriting
other areas outside the viewport. To keep
track of where the plotting operations are
to take place, an invisible cursor is
maintained, to which all draw and print
operations relate.
There are two capabilities of the Apple III
graphics driver which are not well
understood but can be extremely powerful .
These come under the heading of the color
table and transfer option. Used properly,
they can save an incredible amount of
programmer effort.
The color table allows you to set the
25
priority of a given color. Imagine that you
want to draw some blue lines on a screen
that contains some yellow squares. Suppose,
furthermore, that you don't want to cross
the yellow squares (in effect, you want to
draw the line behind the squares). If the
color table is set up properly, the graphics
driver will automatically change any blue
dots you plot to yellow if you try to plot
them over a yellow dot. In any other
system, your program would have to check the
color of each dot before plotting, thus
grinding everything to a virtual halt.
Imagine what this capability could mean if
you wanted to animate shapes of various
colors over a background.
One additional capability in Apple III
graphics is really convenient. At any time
you can print text directly to the .GRAF IX
driver and it will be written at the current
dot position. Since you can also change the
definition of the character set with the
"newfont" procedure, hi-res animation tricks
of the sort found in the Apple II DOS
"Toolkit" package are essentially built-in!
To give you an idea of the functions of the
BGRAF module, the command table lists the
commands available, along with a brief
description of each. Remember that to use
these in Basic, the module must first be
"invoked," and the word "perform" prefixed
to each command. Quite a collection of
goodies, right?
As was said earlier, there is really too
much here for one article; indeed, a whole
book could be written about the Apple III
graphics. Rather than tackle that task,
let's start with something seemingly simple.
As you noted from reading the list of
functions above, the major component that's
missing is anything to do with curves.
Rather than throwing you a curve (groan!),
we'll try drawing some.
Getting Around in Business Basic. To
start, some quick math is required. You can
think of the Apple III screen as a
coordinate system, with "x" and "y"
locations depending on the mode. In all
cases, "y" (vertical) values are displayable
between (bottom) and 191 (top). X
(horizontal) values range between and 139
(lowest resolution) up to to 559
(highest). Circles are nothing more than
sets of points with a common attribute;
namely, they are of equal distance from a
single point called (surprisingly enough)
the center. There are formulas for
determining the points that lie on a circle,
generally derived from the formula below:
a z z
x + y = r
This formula works for circles starting at a
center of 0,0, but since we want to draw
circles anywhere, and since the general form
of the circle equation is more difficult to
solve, we'll rely on another fact about
circles. The trigonometric functions sine
and cosine define "x" and "y" values for the
unit circle, and it is possible to obtain
values for any circle by multiplying these
values by the radius and adding the center
coordinates; that is, to find a point on a
circle of radius 30 at an angle of 30
degrees from horizontal, when the center is
at x=70 and y=96, these formulas can be
used:
x = C0S(30 degrees)*30+70
y = SIN(30 degree s)*30+96
These simple formulas suggest that we might
be ready to write a program.
Program 1 is a relatively straightforward
program, except that the trig functions
("sin," "cos") work in radians, of which
there are 2 x pi in a full circle. That
value is approximately 6.2832, which is
further approximated in line 100. One other
thing of note: Since this graphics mode is
not "square," some adjustment must be made
for the fact that there are more points
proportionately in one axis than in another.
For simplicity, we have scaled the x-axis
value (since that is the only one that
varies in the different modes) by
multiplying by the constant 140/192, the
ratio of horizontal to vertical dots. This
is done in line 110. The other factor in
lines 110 and 120 is the constant 30, which
represents the radius. Note also that line
170 cleans up the graphics memory and closes
the driver. This i sveryimportant. If
you don't release the memory, it will stay
around, unusable by Basic. Also, doing the
"invoke" in line 180 removes the BGRAF
module from memory. If you have other
invokables normally resident, you should
delete this statement.
Run this program several times, with
different values for the step. You will
notice that in addition to being pretty
slow, it takes a step size of about .1 to
draw a good circle. You'll probably also
notice that this program can't draw a very
good circle. Depending on the aspect ratio
of your monitor, the circle will probably
26
Command Table
Initgrafix Initializes the viewport, cursor position, color table and
transfer options
Grafixmode Sets the current graphics mode. The four modes are:
- 280 x 192 black and white
1 - 280 x 192 color ( sixteen colors with 1 imitations)
2 - 560 x 192 black and white
3 - 140 x 192 color ( sixteen colors with no 1 imitations)
Grafixon Di spl ays the current graphics screen
Viewport Sets the boundaries for graphics operations
Pencolor Sets the color of the pen for draws, plots or characters
Fill col or Sets the background color for fil 1 ing and erasing
Fill port Fill s the current viewport with the fill color
Moveto Moves the cursor to a specified point
Moverel Moves the cursor relative to the current point
Dotat Plots a point at a specified point
Ootrel Plots a point rel ative to the current point
Lineto Draws a 1 ine from the current point to a specified point
Linerel Draws a 1 ine to a point rel ative to the current point
XYCol or A function that returns the color of a specified point
Xloc,Yloc Functions that return the current position of the cursor
Newfont Defines a new character font for printing text on the screen
Sysfont Restores the defaul t sy stem font
Gsave Saves a graphics screen to di sk as a PIC file
Gload Loads a PIC file from di sk to the current graphics screen
Rel ease Gives graphics memory back to Basic
Program 1
10
0PEN#l,".grafix"
Open the graphics driver
20
INV0KE"bgraf.inv"
Load BGRAF into memory
30
PERFORM initgrafix
Initialize the graphics screen
40
PERFORM grafixmode(%3,%l)
Set mode 3 ( sixteen-color)
45
INPUT" step value: " ; stepval
Ask for an increment for plotting
50
PERFORM grafixon
Turn on the graphics di spl ay
60
PERFORM pencolor(%13)
Set the color for drawi ng (yellow)
70
PERFORM fill col or(%3)
Set the background color (purple)
80
PERFORM fill port
Fill the viewport with purple
100
FOR 1=0 TO 6.28 STEP stepval
Step around the circle (2pi=6.28)
110
x=C0S(i)*30*(140/192)+70
Calculate x (center=70, radius=30)
120
y=SIN(i)*30+96
Calcul ate y (center at y=96)
130
PERFORM dotat(%x,%y)
Plot the resulting dot location
140
NEXT i
150
INPUT a$
Pause when f i ni shed
160
TEXT
Switch to text mode
170
PERFORM RELEASE: PERFORM RELEASE: CLOSE
180
INVOKE
Clean up the graphics memory
190
END
look like a flattened circle, that is, an
el ipse. This is so because all monitors
differ in the relationship between
horizontal and vertical resolution and size.
We will see a little later that this is an
easy problem to correct.
As was just mentioned, this routine suffers
from being very slow. The main problem
stems from the fact that it takes a large
number of dots to create a circle, and that
number of dots translates into a large
number of steps to draw a circle. In the
example above, it took approximately
sixty-four dots to draw a filled-in circle
of radius 30 units. Had we tried to draw a
larger circle, or had we used a higher
resolution mode, the problem would have been
even worse. The solution to this problem
lies in understanding the real nature of the
task at hand.
Mathematics and mathematical physics is
sometimes called the realm of the perfect.
Energy truly is exactly related to mass
times the speed of light squared (Einstein's
famous formula). But in the world of
measured events, nothing is ever exact and
perfect.
The same is true of circles. Geometry
allows us to dream of perfect circles, but
the realities of trying to draw even one
(especially freehand!) are such that we are
willing to settle for reasonably good
representations as long as they are not too
lumpy. In fact, the resolution of any
graphics screen— no matter how good--is a
far cry from the perfection of a real
circle. Therefore, when we set out to draw
a circle on the screen, we should first ask,
"How good a circle do we want?"
A quick lesson from geometry will help with
the answer. As you may know, a circle can
be approximated as a polygon (a figure with
many sides). The more sides the polygon
has, the more it looks like a circle. Since
the resolution of the graphics screen is
limited, at some reasonable point a polygon
will be indistinguishable from a circle.
The advantage of this approach is that the
Apple III has graphics commands available
for drawing lines. Since a polygon has
sides that are all straight lines, we can
use the line drawing commands to represent a
circle, finding the number of sides in each
resolution which make reasonable looking
circles. The number of sides necessary to
make a good circle will also vary according
to the radius of the circle, since large
circles will be more likely to show the
lines as straight segments.
Program 2 will let you play with the number
of sides necessary to make good circles and
to experiment to determine the aspect ratio
that is correct for your monitor. Modify
this program to try other graphics modes and
see how the different resolutions affect the
results.
10
0PEN#1 ".qrafix"
20
INVOKE" .dl/baraf inv"
30
PERFORM initarafix
> LIM Vl\l I III! \f >-J 1 U 1 1 A
40
PERFORM araf ixmodpfM %^ )
r l. r\i urvi i vji a i i Ainvyvjivr \ too , fox j
45
INPUT" steD valup- " *<;tpn\/al
46
IF steoval<=0 THEN 170
X 1 O UC U'u 1 \J IIIL.il X 1 \J
48
INPUT" a<;nprt ratirv "'acnprt
49
asnpct=l /asopct
50
PERFORM arafixon
60
PERFORM Dencolor(%13)
70
PERFORM fillcolor(%3)
80
PERFORM fillDort
85
seal e=140/192
90
PERFORM moveto(%30*sca1e*aspect+
70,%96)
100
FOR i=stepva1 TO 6.28 STEP stepval
110
x=C0S( i)*30*sca1 e*aspect+70
120
y=SIN(i)*30+96
130
PERFORM 1ineto(%x,%y)
140
NEXT i
150
INPUT a$
160
TEXT
165
GOTO 45
170
PERFORM RELEASE: PERFORM RELEASE:
CLOSE
180
INVOKE
190
END
Several new things are done in this program
2. Notice that we invert the aspect ratio
because we are adjusting the x-axis only.
Further, we have named the ratio between the
"x" and "y" resolution "scale" for use in
the repetitive calculations. Next, because
we are drawing lines this time, the program
uses the "moveto" procedure to move the
graphics cursor to the initial point on the
circle (in this case, the horizontal point
to the right of the center (origin) of the
circle).
Once a starting point is established,
subsequent "lineto" commands will draw the
circle as a series of line segments. Try
experimenting with widely varying numbers of
steps, from 1 to .02 as an example. You
will find that at some point the circle
looks the same, no matter how many line
segments make it up. By choosing the fewest
steps that still produce a decent circle,
28
you can speed up the drawing process
considerably. Don't forget to experiment
with values for aspect ratio as well. For
the Monitor III, a value of 1.3 usually
works pretty well. Try several values until
you are happy with the results.
The next technique for speeding up this
routine is even more interesting. Notice
that we keep calculating the sine and cosine
of each angle, no matter how many times we
run the program. Furthermore, it should be
apparent that it's possible to draw a circle
of any reasonable radius by just varying the
multiplication factor. Further, it's
obvious that steps of less than .05 for any
reasonable radius do not produce better
circles. All that suggests program 3, an
enhanced version of the original program:
10 0PEN#l,".grafix"
20 INVOKE". dl/bgraf.inv"
25 DIM xcos(63),ysin(63)
26 FOR 1=0 TO 63:xcos(i)=C0S(i/10):
ysin(i)=SIN(i/10):NEXT i
30 PERFORM initgrafix
40 PERFORM grafixmode(%3,%l )
46 INPUT"aspect ratio: ";aspect
47 aspect=l/aspect
48 INPUTVadius: ";r
49 IF r<=0 THEN 170
50 PERFORM grafixon
60 PERFORM pencol or(%13)
70 PERFORM fill col or (%3)
80 PERFORM fillport
85 scale=140/192
90 PERFORM moveto(%r*scal e*aspect
+70,%96)
100 FOR i=l TO 63
110 x=xcos( i)*r*scale*aspect+70
120 y=ysin(i)*r+96
130 PERFORM 1 ineto(%x,%y)
140 NEXT i
150 INPUT a$
160 TEXT
165 GOTO 48
170 PERFORM RELEASE: PERFORM RELEASE:
CLOSE
180 INVOKE
190 END
Notice that this time two arrays have been
set up, both with sixty-four values each.
Rather than recalculate the "sin" and "cos"
functions, the program does them once at the
beginning and stores them for use later in
lines 110 and 120. If you intend to do a
great deal of this kind of work, or if you
want to expand the number of steps
significantly, you may want to create
another program that calculates the values
and writes them to a data file. Then your
circle program could simply read the values
in at the beginning.
Notice, too, that these routines are
essentially identical to the previous ones,
except that thi s time you may experiment
with circles of different radii. After
experimenting with this routine, you should
see that a general purpose routine can be
written that will satisfy all circumstances.
It's most practical to express this as a
subroutine, with the variables being the
circle diameter, the mode, the scale factor
and the center coordinates. The result
might look like this program 4.
10
0PEN#l, .grafix
iNvuKx. .ai/Dgrat. i nv
25
DIM xcos(12o } ,ysi nlldb ) ,xdotlo )
26
FOR 1=0 TO 126:xcos(i)=C0S(i/20):
y si n( i)=olNl i fc.\j ) : Ntx l i
27
xdot(0 )=280: xdot( 1 )=280: xdotl 2 )=
560:xdot(3)=140
30
PERFORM initgrafix
35
INPUT"Mode: ";mode
37
IF mode<=0 THEN 180
40
PERFORM graf ixmode(%mode,%l)
50
INPUT pencolor,fillcolor: ;pen,
fl 1 1
60
PERFORM pencol or(%pen)
70
PERFORM filled or (%f ill)
75
INPUT clear screen? ;a$
80
a$=MID$( a$,l ,1 ) : IF a$= y OR a$=
THEN PERFORM fillport
81
INPUT radius: ;r
82
aratio=1.3
83
xcen=xdot( mode) /2 :ycen=96
85
PERFORM grafixon
87
seal ef ac= ( 1 /arati o) * ( xdot( mode)
/192)
90
G0SUB 900
150
PERFORM moveto(%0,%8)
160
PRINT#1; "Press RETURN:";
165
INPUT" ";a$
170
TEXT
175
GOTO 75
180
PERFORM RELEASE -.PERFORM RELEASE:
CLOSE
190
INVOKE
200
END
900
xscal e=r*scalefac
905
xcen=xcen+.5:ycen=ycen+.5
907
den si ty= ( mode=2 )+2*( mode<2 )
+3*(mode=3)
910
firstx=xcos(0)*xscal e+xcen
915
PERFORM moveto(%firstx,%ycen)
920
stepamt= I NT ( 20* ( 5 - den si ty )
/r)+density
930
IF stepamt>6 THEN stepamt=6
940
FOR i=l TO 126 STEP stepamt
950
PERFORM 1 ineto(%(xcos(i)*xscale
29
+xcen) My si n( i )*r+ycen) )
960 NEXT i
970 PERFORM 1 ineto(%first,%ycen)
980 RETURN
Program 4 is a considerably enhanced
version. Notice that we have doubled the
number of points that can be used, as well
as introducing the capacity to change modes
and colors. Since we now have different
possibilities for the mode, we introduce the
xdot array, which contains the horizontal
dot density required to figure the center
and the scale factor. The actual drawing
routine is now a subroutine at line 900, in
such a form that you could incorporate it
into other programs.
To speed up the subroutine for the various
graphics modes, the concept of "density" is
introduced. This factor varies between one
and three depending on whether the
horizontal resolution is 140, 280 or 560
(modes 3, and 1, and 2 respectively).
Note the use of the logical statements in
line 907 to replace a lot of "if" and
assignment statements. Be sure you work
through that program line in your mind to
assure yourself that the assignments work as
intended.
The other thing to note is that the density
factor is used in line 920 to calculate a
reasonable step value for drawing the
circle. You might want to substitute a few
values to see just how this works. Line 930
makes sure the program uses a reasonable
number of steps even if the circle is
extremely small.
Notice also that in line 905 the value .5 is
added to the center coordinates. This has
the effect of rounding the values when they
are passed to the "lineto" procedure in line
950, ensuring more accurate plotting.
Another new feature is that in line 970 an
additional "lineto" is added to draw a line
back to the original point. This ensures
that if the step value is such that the
circle is not fully completed, the last
point drawn will be connected to the
beginning point.
Line 160 presents another new concept. By
simply printing to the .GRAFIX driver file,
you may write text on any graphics screen.
Furthermore, the text can begin on any dot
boundary anywhere on the screen. That
requires some pretty tricky software on the
Apple II, but is a built-in feature of the
Apple III graphics modes.
Many more enhancements could be added to
this program, but instead of going on and
on, here s an example of how the program and
routines could be modified to draw circle
segments (arcs) and pie slices, 'jsing
essentially the same techniques. The new
program (program 5) looks like this:
3
REM arc draw subroutine
10
G0SUB 1000:REM initialize
20
PRINT"Arc drawer program"
35
INPUT'Graphics mode: ";mode$
36
IF mode$="" THEN 180
37
mode=C0NV(mode$)
40
PERFORM grafixmode(%mode,%l)
50
INPuT'pencol or ,f i 1 1 col or: " ; pen ,
fill
52
draw.radius=0
55
INPUT" draw the radii? ";a$
56
a$=MID$(a$,l,l):IF a$="y" OR a$=
THEN draw.radius=l
60
PERFORM pencolor(%pen)
70
PERFORM fillcolor(%fill)
75
INPUT" clear screen? ";a$
80
a$=MID$(a$.l.l): IF aS="v" OR a$=
THEN PERFORM fillport
82
horiz=xdot(mode) /192
85
seal ef ac= ( 1 /arati o) *hori z
87
PERFORM grafixon
88
FOR loop=l TO 25
90
r=INT(50*RND(l)+30)
91
xcen=INT(192*horiz*RND(l))
92
ycen=INT(192*RND(l))
93
start. rad=3 . 14*RND ( 1 ) : end. rad=
start.rad+3*RND(l)
95
GOSUB 1100
100
NEXT loop
150
PERFORM moveto(%0,%8)
160
PRINT#l;"Press RETURN:";
165
INPUT" ";a$
170
TEXT: GOTO 35
180
PERFORM release: PERFORM release:
PERFORM release
190
CLOSE: INVOKE
200
END
1000 OPEN#l,".grafix"
1010 INVOKE". dl/bgraf.inv"
1020 DIM xcos(126),ysin(126),xdot(3)
1030 FOR i=0 TO 126:xcos( i )=C0S( i/20)
:ysin(i)=SIN(i/20):NEXT i
1040 xdot(0)=280:xdot(l)=280:xdot(2)=
560:xdot(3)=140
1050 arati o=l. 3
1060 PERFORM initgrafix
1070 RETURN
1094 REM r=radius, seal efac=aspect ratio
* relative density
1095 REM xcen= x coordinate of center
1096 REM ycen= y coordinate of center
1097 REM start. rad= starting point of
arc in radians
30
1098 REM end.rad=ending point of arc in
radians
1099 REM draw.radius=l means draw the
radius lines to the endpoints
1100 xscal e= r* seal efac
1105 xcen=xcen+.5:ycen=ycen+.5
1110 den si ty= ( mode=2 )+2* ( mode<2 )
+3*(mode=3)
1115 IF draw. radius THEN PERFORM moveto
(%xcen,%ycen): PERFORM
1 i neto(%( COS ( start, rad)*
xscal e+xcen) ,%(SIN( start. rad)*r+
ycen) ) : ELSE -.PERFORM moveto(%(C0S
( start. rad)*xscal e+xcen) ,%(SIN
( start. rad)*r+ycen) )
1120 stepamt=INT(20*(5-density)/r)+
density
1130 IF stepamt>6 THEN stepamt=6
1140 FOR i=INT(start.rad*20+.5) TO end.
rad*20 STEP stepamt
1150 PERFORM 1 i neto(%(xcos( i )*xscal e+x
cen), %(ysin(i)*r+ycen))
1160 NEXT i
1170 PERFORM 1 ineto(%(COS(end.rad)*
xscal e+xcen) ,%(SIN(end.rad)*r+y
cen) )
1175 IF draw. radius THEN PERFORM
1 ineto(%xcen,%ycen)
1180 RETURN
Program 5 is set up to use lines 88 through
100 to create random centers, radii and arc
lengths (in radians) and to use the
subroutine at line 1100 to draw the
resulting arcs. This routine and the one
above for drawing circles should equip you
to do most of the interesting tasks in
graphics. It's likely that these routines
will also give you ideas on how to approach
other specific projects you might wish to
tackl e.
Normally, when you run the arc program
you'll get some arcs that are partially off
the screen. Notice that the .GRAF IX driver
handles such a situation perfectly because
it treats its graphics area as a space of
points from -32768 to 32767, with the screen
as a window into the total space. This
eliminates immeasurable amounts of bounds
checking within programs, a process that
usually ends up slowing down the drawing.
In addition, as was mentioned already, the
graphics window can be set to anywhere on
the screen, with any values outside the
window automatically clipped.
There are a thousand more topics to be
covered in exploring the graphics
capabilities of the Apple III. Next month
we will tackle a few biggies, "area fiir
(especially for the circles and arcs we have
been drawing) and the whole area of
user-definable character sets. With luck,
we'll get to some animation examples. Until
then, dig into your device driver manual
documentation on .GRAF IX and the writeup on
BGRAF.INV in the Business Basic manual .
There' s a whole world inside thi s system!
STEMS AND SEEDS:
"INCOMPATIBLE INTERPRETER" EXPLANATION
We have received many inquiries from members
who have purchased Public Domain disks
through the group about the above error
message appearing on their screens. The
"INCOMPATIBLE INTERPRETER" error message is
caused by using the SOS 1.3 kernal with
older versions of the Pascal Interpreter,
such as used on the DOS to SOS Text File
Converter, and the Business BASIC
interpreter version 1.0, which is on the
File Cabinet /// di skette. Our master
di skettes for these programs were updated to
SOS 1.3, and once we di scovered the error of
our ways, we downgraded our master di skettes
to SOS 1.0.
File Cabinet /// can be upgraded to Business
BASIC 1.1 by deleting the SOS. INTERPRETER
from your FILE CABINET /// boot diskette.
Repl ace it with the SOS. INTERPRETER from
your Business BASIC version 1.1 di skette
using the System Utilities Program. You
will then be able to upgrade your File
Cabinet /// to SOS 1.3.
The DOS to SOS Text File Converter will
probably require changing SOS. INTERPRETER
and SYSTEM. PASCAL in order to be compatible
with SOS 1.3. Try deleting both of these
from your DOS to SOS Text File Converter
di skette and repl acing them with the ones on
your Sy stem Util ities di skette.
We apologize for any inconvenience thi s may
have caused any of our members.
-///-
31
open apple
gazette
1850 Union Street # 494
San Francisco CA 94123
Business Apple Group, Inc.
CLUB INFORMATION
MEETINGS
Meetings are held at 7:30 PM on the third Wednesday
of each month. Call Don Norris for current meeting
location.
MEMBERSHIP
Annual membership dues are $30 from the date applica-
tion received. Your check payable to the Business Apple
Group, Inc. may be mailed to the address below.
OPEN APPLE GAZETTE POLICY
All manuscripts, photographs, and other materials are
submitted free and released for publication. They be-
come the property of the Business Apple Group, Inc.
and the Open Apple Gazette. Authors should clearly
mark all material submitted for publi cation so that credit
may be given.
The publishers/editors do not necessarily agree with, nor
stand responsible for, opinions expressed or implied by
other than themselves in this publication.
The Business Apple Group, Inc. is a non-profit organiza-
tion comprised of, and supported by, Apple ■/// owners
and users. We endeavor to aid other Apple /// users
through this educational publication - "OPEN APPLE
GAZETTE." Address all inquiries to: Business Apple
Group, Inc., 1850 Union Street #494, San Francisco, CA
94123.
REPRINT POLICY
All articles appearing in the Open Apple Gazette not
copyrighted by the author may be reprinted by another
non-profit Apple user group so long as proper credit is
given to both the Open Apple Gazette and the author.
Proper credit is defined as article title, author, and the
words "Printed from VOL X, NO Y of the Open Apple
Gazette." Permission to reprint a copyrighted article
may be obtained by writing to the author c/o the Business
Apple Group, Inc..
ARTICLE SUBMISSION POLICY
The Open Apple Gazette welcomes any and all articles
dealing with the Apple /// Computer and its associated
hardware and software. Articles should be submitted
on diskette as an ACSII text file, such as those produced
by either Word Juggler, Apple Writer /// or the Pascal
Editor. Typewritten double spaced articles are also
acceptable.
PRESIDENT
VICE PRESIDENT
SECRETARY
CONSULTANTS
ASSISTANT EDITOR
OFFICERS
Don Norris (415) 921-3774
Kent Hockabout (415)521-5414
Charles Coles (415) 386-8623
Ransom Fields
Ken Silverman
Stuart Henderson
Back Issues
Volume 1, Numbers 2-6
Volume 2, Number 1
$4.00 each
$4.00 each
Mail Requests for Back Issues to:
Open Apple Gazette
1850 Union Street, #494
San Francisco, CA 94123
-///-